package com.qixiaobao.system.mapper;

import com.qixiaobao.system.domain.Dict;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description 字典 数据层
 * @Author yangxm
 * @Date 2025/6/17 11:33
 */
@Mapper
public interface DictMapper {

    /**
     * 查询字典列表
     *
     * @return 字典列表
     */
    List<Dict> selectDictList();


    /**
     * @Description 查询供应商全称
     * @Author yangxm
     * @Date 2025/6/18 9:00
     * @param noPermissionSupplyIdList
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectSupplyNameSelect(List<Long> noPermissionSupplyIdList);

    /**
     * @Description 保单管理-待生效、在保中、已失效、退保已失效，所属供应商下拉
     * @Author yangxm
     * @Date 2025/6/18 9:00
     * @param gurantStatus
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectBelongToSupplySelect(String gurantStatus);

    /**
     * @Description 供应商简称下拉
     * @Author yangxm
     * @Date 2025/6/18 9:00
     * @param supplyNameList
     * @param noPermissionSupplyIdList
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectSupplyShortNameSelect(@Param("supplyNameList") List<String> supplyNameList, @Param("noPermissionSupplyIdList") List<Long> noPermissionSupplyIdList);

    /**
     * @Description 权限字典
     * @Author yangxm
     * @Date 2025/6/18 9:00
     * @param type
     * @param noPermissionSupplyIdList
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectPermissionDictListByType(@Param("type") String type, @Param("noPermissionSupplyIdList") List<Long> noPermissionSupplyIdList);

    /**
     * @Description 匹配后供应商简称下拉
     * @Author yangxm
     * @Date 2025/6/18 9:00
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectToSupplyShortNameSelect();

    /**
     * @Description 增减员记录-所属供应商下拉
     * @Author yangxm
     * @Date 2025/6/24 9:09
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectAddminusBelongToSupplySelect();

    /**
     * @Description 根据字典类型查询字典
     * @Author yangxm
     * @Date 2025/6/24 17:07
     * @param type
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectDictListByType(String type);

    /**
     * @Description 付款单位下拉
     * @Author yangxm
     * @Date 2025/6/27 9:31
     * @param noPermissionSupplyIdList
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectPayCompanySelect(List<Long> noPermissionSupplyIdList);

    /**
     * @Description 非直投结算管理，所属供应商下拉
     * @Author yangxm
     * @Date 2025/6/27 9:38
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectNonDirectBelongToSupplySelect();

    /**
     * @Description 根据字典类型数组查询字典
     * @Author yangxm
     * @Date 2025/6/27 9:38
     * @param typeArray
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectDictListByTypeArray(String[] typeArray);
}
